init: allow nonstandard_style for generated accessor/value#127
Conversation
|
Tested with the following changes: diff --git a/examples/big_struct_in_place.rs b/examples/big_struct_in_place.rs
index 80f89b5..5525cae 100644
--- a/examples/big_struct_in_place.rs
+++ b/examples/big_struct_in_place.rs
@@ -13,8 +13,8 @@ pub struct BigStruct {
a: u64,
b: u64,
c: u64,
- d: u64,
- managed_buf: ManagedBuf,
+ NONSTANDARD_D: u64,
+ MANAGED_BUF: ManagedBuf,
}
#[derive(Debug)]
@@ -37,8 +37,8 @@ fn main() {
a: 7,
b: 186,
c: 7789,
- d: 34,
- managed_buf <- ManagedBuf::new(),
+ NONSTANDARD_D: 34,
+ MANAGED_BUF <- ManagedBuf::new(),
}))
.unwrap();
println!("{}", core::mem::size_of_val(&*buf));Output before the patch: $ cargo run --example big_struct_in_place
[...]
error: structure field `NONSTANDARD_D` should have a snake case name
--> examples/big_struct_in_place.rs:16:5
|
16 | NONSTANDARD_D: u64,
| ^^^^^^^^^^^^^ help: convert the identifier to snake case: `nonstandard_d`
|
= note: `-D non-snake-case` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(non_snake_case)]`
error: structure field `MANAGED_BUF` should have a snake case name
--> examples/big_struct_in_place.rs:17:5
|
17 | MANAGED_BUF: ManagedBuf,
| ^^^^^^^^^^^ help: convert the identifier to snake case: `managed_buf`
error: variable `NONSTANDARD_D` should have a snake case name
--> examples/big_struct_in_place.rs:40:28
|
40 | NONSTANDARD_D: 34,
| ^^ help: convert the identifier to snake case: `nonstandard_d`
error: variable `NONSTANDARD_D` should have a snake case name
--> examples/big_struct_in_place.rs:40:13
|
40 | NONSTANDARD_D: 34,
| ^^^^^^^^^^^^^ help: convert the identifier to snake case: `nonstandard_d`
error: variable `MANAGED_BUF` should have a snake case name
--> examples/big_struct_in_place.rs:41:13
|
41 | MANAGED_BUF <- ManagedBuf::new(),
| ^^^^^^^^^^^ help: convert the identifier to snake case: `managed_buf`
error: could not compile `pin-init` (example "big_struct_in_place") due to 5 previous errorsOutput after the patch: $ cargo run --example big_struct_in_place
[...]
error: structure field `NONSTANDARD_D` should have a snake case name
--> examples/big_struct_in_place.rs:16:5
|
16 | NONSTANDARD_D: u64,
| ^^^^^^^^^^^^^ help: convert the identifier to snake case: `nonstandard_d`
|
= note: `-D non-snake-case` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(non_snake_case)]`
error: structure field `MANAGED_BUF` should have a snake case name
--> examples/big_struct_in_place.rs:17:5
|
17 | MANAGED_BUF: ManagedBuf,
| ^^^^^^^^^^^ help: convert the identifier to snake case: `managed_buf`
error: could not compile `pin-init` (example "big_struct_in_place") due to 2 previous errorsI am still quite new to the process of contributing to Rust-For-Linux. Please let me know if I've made any mistakes or if I've missed something. |
|
Please add a test for this |
|
Does something like this look okay? |
|
I think what you want is not a compile_fail test, but rather than the code (with |
e90104e to
2d194be
Compare
|
Right, that sounds like a better approach. I've amended the existing test commit to keep the branch clean, hopefully that's okay: 2d194be
I put the test under the existing |
|
Two more things:
|
|
|
c7a56c5 to
f7e5864
Compare
61c7294 to
7a0d2da
Compare
|
Sorry for the delay - I just pushed a few more commits. Hopefully that covers everything now. I kept the new commits separate, so that it is easier to see the diffs. Please let me know if you want them squashed. |
0116ff1 to
39de3e1
Compare
|
I've squashed the commits as suggested. I didn't keep the fixup commits for the most recent round of reviews (there wasn't a nice way to split them per comment but also per commit they should be folded into), so I'll list the changes here:
This comment has been removed.
Done. Only
Done.
Added a line for
Nice catch. I've split up the evaluation of user code and assignment to a local variable, only suppressing warnings for the latter. I've also modified the test to prove this works as intended now. |
39de3e1 to
51de8d5
Compare
nbdd0121
left a comment
There was a problem hiding this comment.
Actually, could you please update the commit message to reflect latest changes please.
Also, the current summary lines are too long (they'll be prepended with rust: pin-init: when patches are synced to kernel).
Something like internal: suppress ... for `#[pin_data]` would work better. Thanks!
3d31593 to
5b5bb7a
Compare
89de161 to
6b6cbd4
Compare
6b6cbd4 to
0715513
Compare
0715513 to
b5b5807
Compare
b5b5807 to
5acdc49
Compare
|
I've rebased the code with accessor rework landed. I've noticed when trying to apply that there's some style issues with the commits (same as the other PR) about the tags.
|
Allows `non_snake_case` lint on struct fields generated by `#[pin_data]`. Since the same warning will be reported by the compiler on the struct definition, having extra warnings for the generated code is unnecessary and confusing. Link: Rust-for-Linux#125 Reported-by: Gary Guo <gary@garyguo.net> Closes: https://lore.kernel.org/rust-for-linux/DGTBJBIVFZ2K.2F1ZEFGY0G7NK@garyguo.net/ Signed-off-by: Mirko Adzic <adzicmirko97@gmail.com>
Changes how `[pin_]init!` handles `InitializerKind::Value` to avoid creating a local variable that can cause `non_snake_case` lint. Allows `non_snake_case` lint on local variables generated elsewhere in `[pin_]init!`. Since the same warning will be reported by the compiler on the struct definition, having the extra warning for the generated local variables is unnecessary and confusing. Link: Rust-for-Linux#125 Reported-by: Gary Guo <gary@garyguo.net> Closes: https://lore.kernel.org/rust-for-linux/DGTBJBIVFZ2K.2F1ZEFGY0G7NK@garyguo.net/ Fixes: db96c51 ("add references to previously initialized fields") Signed-off-by: Mirko Adzic <adzicmirko97@gmail.com>
Adds a test to make sure that no excess warnings are emitted by `#[pin_data]`, `init!` or `pin_init!` when dealing with non-standard field names. Signed-off-by: Mirko Adzic <adzicmirko97@gmail.com>
5acdc49 to
a17f2c9
Compare
|
Thanks for letting me know. I've edited both commits to follow the tag guidelines and removed the |
Allows
nonstandard_stylelint on accessors/values generated as local variables ininit!.Since the same warning will be reported by the compiler on the struct field, having the extra warning for the generated accessor/value is unnecessary and confusing.
Reported-by: Gary Guo gary@garyguo.net
Link: #125
Closes: https://lore.kernel.org/rust-for-linux/DGTBJBIVFZ2K.2F1ZEFGY0G7NK@garyguo.net/
Fixes: f1b0c3c ("internal: init: remove #[disable_initialized_field_access]")